﻿using System;

namespace Microsoft.Xna.Framework
{
    /// <summary>
    /// Indicates battery charge status.
    /// </summary>
    [Flags]
    public enum BatteryChargeStatus
    {
        /// <summary>
        /// Indicates a battery is charging.
        /// </summary>
        Charging = 8,
        /// <summary>
        /// Indicates a critically low level of battery charge.
        /// </summary>
        Critical = 4,
        /// <summary>
        /// Indicates a high level of battery charge.
        /// </summary>
        High = 1,
        /// <summary>
        /// Indicates a low level of battery charge.
        /// </summary>
        Low = 2,
        /// <summary>
        /// Indicates that no battery is present.
        /// </summary>
        NoSystemBattery = 0x80,
        /// <summary>
        /// Indicates an unknown battery condition.
        /// </summary>
        Unknown = 0xff
    } 
    /// <summary>
    /// Indicates the extent to which bounding volumes intersect or contain one another.
    /// </summary>
    public enum ContainmentType
    {
        /// <summary>
        /// Indicates that one bounding volume completely contains the other.
        /// </summary>
        Contains,
        /// <summary>
        /// Indicates there is no overlap between the bounding volumes.
        /// </summary>
        Disjoint,
        /// <summary>
        /// Indicates that the bounding volumes partially overlap.
        /// </summary>
        Intersects
    }
    /// <summary>
    /// Defines the continuity of CurveKeys on a Curve.
    /// </summary>
    public enum CurveContinuity
    {
        Smooth,
        Step
    }
    /// <summary>
    /// Defines how the value of a Curve will be determined for positions before the first point on the Curve or after the last point on the Curve.
    /// </summary>
    public enum CurveLoopType
    {
        Constant,
        Cycle,
        CycleOffset,
        Linear,
        Oscillate
    }
    /// <summary>
    /// Specifies different tangent types to be calculated for CurveKey points in a Curve.
    /// </summary>
    public enum CurveTangent
    {
        Flat,
        Linear,
        Smooth
    }
    /// <summary>
    /// Describes the intersection between a plane and a bounding volume.
    /// </summary>
    public enum PlaneIntersectionType
    {
        /// <summary>
        /// There is no intersection, and the bounding volume is in the negative half-space of the Plane.
        /// </summary>
        Back,
        /// <summary>
        /// There is no intersection, and the bounding volume is in the positive half-space of the Plane.
        /// </summary>
        Front,
        /// <summary>
        /// The Plane is intersected.
        /// </summary>
        Intersecting
    }
    /// <summary>
    /// Specifies the game controller associated with a player.
    /// </summary>
    public enum PlayerIndex
    {
        /// <summary>
        /// The first controller.
        /// </summary>
        One,
        /// <summary>
        /// The second controller.
        /// </summary>
        Two,
        /// <summary>
        /// The third controller.
        /// </summary>
        Three,
        /// <summary>
        /// The fourth controller
        /// </summary>
        Four
    }
    /// <summary>
    /// Indicates the status of the system powerline.
    /// </summary>
    public enum PowerLineStatus
    {
        Offline,
        Online,
        Unknown
    } 
    /// <summary>
    /// Defines the target platform to be used when compiling content.
    /// </summary>
    public enum TargetPlatform
    {
        Unknown,
        Windows,
        Xbox360,
        Zune
    } 
}